package ae.pcfc.cldos.online.common.clddb.domain;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import org.hibernate.envers.Audited;

import ae.pcfc.cldos.online.common.domain.BaseEntity;


/**
 * The persistent class for the T_CLDOS_PERSONAL_DETAILS database table.
 * 
 */
@Entity
@Table(name="T_CLDOS_PERSONAL_DETAILS")
@Audited
public class PersonalDetail extends BaseEntity implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(generator="SQ_CLDOS_APP_ID")
	@GenericGenerator(name = "SQ_CLDOS_APP_ID",  strategy="foreign", parameters=@Parameter(name="property", value="EmployeeDetail"))
	@Column(name="APPLICATION_ID")
	private Long applicationId;

    @Temporal( TemporalType.DATE)
	@Column(name="PD_DOB")
	private Date pdDob;

	@Column(name="PD_FAMILY_NAME")
	private String pdFamilyName;

	@Column(name="PD_FATHER_NAME")
	private String pdFatherName;
	
	@Column(name="PD_FAMILY_NAME_ARB")
	private String pdFamilyNameArb;
	
	@Column(name="PD_FATHER_NAME_ARB")
	private String pdFatherNameArb;
	
	@Column(name="PD_MOTHER_NAME_ARB")
	private String pdMotherNameArb;

	@Column(name="PD_MOTHER_NAME")
	private String pdMotherName;

	@Column(name="PD_PLACE_OB")
	private String pdPlaceOb;

	@Column(name="PD_PRVS_NATION")
	private String pdPrvsNation;

	@Column(name="PD_QUALIFICATION")
	private String pdQualification;

	@Column(name="PD_SPOKEN_LANG1")
	private String pdSpokenLang1;

	@Column(name="PD_SPOKEN_LANG2")
	private String pdSpokenLang2;

	@Column(name="PD_SPOKEN_LANG3")
	private String pdSpokenLang3;

	//bi-directional many-to-one association to EmployeeDetail
	@OneToOne(fetch=FetchType.LAZY, cascade=CascadeType.ALL, optional=true)
	@PrimaryKeyJoinColumn
	private EmployeeDetail EmployeeDetail;

    public PersonalDetail() {
    }

	public Date getPdDob() {
		return this.pdDob;
	}

	public void setPdDob(Date pdDob) {
		this.pdDob = pdDob;
	}

	public String getPdFamilyName() {
		return this.pdFamilyName;
	}

	public void setPdFamilyName(String pdFamilyName) {
		this.pdFamilyName = pdFamilyName;
	}

	public String getPdFatherName() {
		return this.pdFatherName;
	}

	public void setPdFatherName(String pdFatherName) {
		this.pdFatherName = pdFatherName;
	}

	public String getPdMotherName() {
		return this.pdMotherName;
	}

	public void setPdMotherName(String pdMotherName) {
		this.pdMotherName = pdMotherName;
	}

	public String getPdPlaceOb() {
		return this.pdPlaceOb;
	}

	public void setPdPlaceOb(String pdPlaceOb) {
		this.pdPlaceOb = pdPlaceOb;
	}

	public String getPdPrvsNation() {
		return this.pdPrvsNation;
	}

	public void setPdPrvsNation(String pdPrvsNation) {
		this.pdPrvsNation = pdPrvsNation;
	}

	public String getPdQualification() {
		return this.pdQualification;
	}

	public void setPdQualification(String pdQualification) {
		this.pdQualification = pdQualification;
	}

	public String getPdSpokenLang1() {
		return this.pdSpokenLang1;
	}

	public void setPdSpokenLang1(String pdSpokenLang1) {
		this.pdSpokenLang1 = pdSpokenLang1;
	}

	public String getPdSpokenLang2() {
		return this.pdSpokenLang2;
	}

	public void setPdSpokenLang2(String pdSpokenLang2) {
		this.pdSpokenLang2 = pdSpokenLang2;
	}

	public String getPdSpokenLang3() {
		return this.pdSpokenLang3;
	}

	public void setPdSpokenLang3(String pdSpokenLang3) {
		this.pdSpokenLang3 = pdSpokenLang3;
	}

	public EmployeeDetail getEmployeeDetail() {
		return this.EmployeeDetail;
	}

	public void setEmployeeDetail(EmployeeDetail EmployeeDetail) {
		this.EmployeeDetail = EmployeeDetail;
	}

	public String getPdFamilyNameArb() {
		return pdFamilyNameArb;
	}

	public void setPdFamilyNameArb(String pdFamilyNameArb) {
		this.pdFamilyNameArb = pdFamilyNameArb;
	}

	public String getPdFatherNameArb() {
		return pdFatherNameArb;
	}

	public void setPdFatherNameArb(String pdFatherNameArb) {
		this.pdFatherNameArb = pdFatherNameArb;
	}

	public String getPdMotherNameArb() {
		return pdMotherNameArb;
	}

	public void setPdMotherNameArb(String pdMotherNameArb) {
		this.pdMotherNameArb = pdMotherNameArb;
	}

	public Long getApplicationId() {
		return applicationId;
	}

	public void setApplicationId(Long applicationId) {
		this.applicationId = applicationId;
	}
	
	
}